!!============================================================================== !! !! LA PEQUEÑA CERILLERA: !! Definición de atributos, clases y objetos !! !!============================================================================== !! !! !! File: cerillera_obj.inf !! Author(s): J. Francisco Martín (jfm.lisaso@gmail.com) !! Cover-art: Anne Anderson !! Language: ES (Castellano) !! System: Inform/INFSP 6 !! Platform: Máquina-Z !! Release: 1.2 !! Released: 2010/12/13 !! Notes: !! !! !!------------------------------------------------------------------------------ !! !! !! Este programa es software libre: usted puede redistribuirlo y/o !! modificarlo bajo los términos de la Licencia Pública General GNU !! publicada por la Fundación para el Software Libre, ya sea la versión !! 3 de la Licencia, o (a su elección) cualquier versión posterior. !! !! Este programa se distribuye con la esperanza de que sea útil, pero !! SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o !! de APTITUD PARA UN PROPÓSITO DETERMINADO. Consulte los detalles de !! la Licencia Pública General GNU para más información. !! !! Debería haber recibido una copia de la Licencia Pública General GNU !! junto a este programa. En caso contrario, consulte !! . !! !! Copyright (c) 2010, J. Francisco Martín !! !! !!============================================================================== !!============================================================================== !! Definición de clases !!------------------------------------------------------------------------------ Class Room with description "EN CONSTRUCCIÓN.", has light; Class Thing with clarification 0, size 0, ! Tamaño volume 0, ! Volumen weight 0, ! Peso capacity_number -1, ! Capacidad total (número de objetos) capacity_size -1, ! Capacidad total (tamaño) capacity_volume -1, ! Capacidad total (volumen) capacity_weight -1; ! Capacidad total (peso) Class Item class Thing, with description [; switch (GRAMMATICAL_FLEXION) { 1,2,3: print "Tiene", (n) self; 4,5,6: print "Tenía", (n) self; } print " el mismo aspecto que cual"; if ( self has pluralname ) print "esquiera otr"; else print "quier otr"; print (o) self, " ", (name) self, " "; switch (GRAMMATICAL_FLEXION) { 1: "que haya visto antes."; 2: "que hayas visto antes."; 3: "que haya visto antes."; 4: "que hubiese visto antes."; 5: "que hubieses visto antes."; 6: "que hubiese visto antes."; } ]; Class Atrezzo class Thing has scenery; !!============================================================================== !! LIMBO: En algún lugar !!------------------------------------------------------------------------------ Room LIMBO "En algún lugar" with name 'limbo' 'sueno' 'lugar', description [; print "Más allá de la barrera casi insuperable que separa la realidad de todo lo demás. Un lugar etéreo, donde la vida, la materia y la vitalidad no son necesariamente constantes; un lugar donde el tiempo y el espacio no existen tal y como los capta nuestro ser despierto.."; if ( self hasnt visited ) print ". Bienvenido al mundo del Sueño"; "."; ]; Object OBJayuda with found_in [; return true; ], !!---------------------- DescripcionLocalidad_explicado false, DescripcionLocalidad_ayuda false, DescripcionLocalidad_1 [; print_ret (stparser) "Puedes volver a obtener una descripción de los alrededores tecleando MIRA A TU ALREDEDOR o simplemente MIRA."; ], DescripcionLocalidad_2 [; print_ret (stparser) "En el futuro puedes usar indistintamente la instrucción MIRA o limitarte a pulsar la tecla ~intro~ si quieres ver de nuevo la descripción del lugar en que se encontraba la pequeña protagonista. Si te atascas y no sabes cómo continuar, puedes volver a teclear AYUDA en cualquier momento."; ], !!---------------------- DescripcionObjetos_explicado false, DescripcionObjetos_ayuda false, DescripcionObjetos_1 [; print_ret (stparser) "Los objetos tienen sus propias descripciones también. Puedes averiguar más cosas sobre un objeto en particular usando la instrucción EXAMINA. Por ejemplo, prueba a teclear EXAMINA LA CALLE."; ], DescripcionObjetos_2 [; print_ret (stparser) "Dado que examinar objetos es una acción muy frecuente, puedes abreviar el comando y teclear EX o simplemente X. De este modo, la instrucción X CALLE es equivalente a escribir EXAMINA LA CALLE."; ], !!---------------------- Inventario_explicado false, Inventario_ayuda false, Inventario_1 [; print_ret (stparser) "Para sabes cuáles son las cosas que la niña llevaba encima, teclea INVENTARIO."; ], Inventario_2 [; print_ret (stparser) "Comprobar cuáles son los objetos que lleva la protagonista es una acción muy habitual de forma que, al igual que muchas otras, también podrás abreviarla. INVENTARIO, INV o simplemente I, harán que se imprima el siguiente listado:"; ], !!---------------------- ComandoUsa_explicado false, ComandoUsa [; print_ret (stparser) "Normalmente podrás intentar manipular los pocos objetos con los que te encuentres en el cuento de muchas formas distintas. Habiendo tantas opciones diferentes, la instrucción USA resulta demasiado ambigua. Prueba a realizar una acción más concreta."; ], !!---------------------- Abre_explicado false, Abre_ayuda false, Abre_1 [; print_ret (stparser) "Si quieres abrir la caja de cerillas, simplemente teclea ABRE LA CAJA DE CERILLAS."; ], Abre_2 [; print_ret (stparser) "De forma análoga, también podrás cerrarla usando la instrucción CIERRA CAJA. Además, normalmente los objetos se pueden manipular de muchas otras maneras (puedes intentar cogerlos y dejarlos, empujarlos, romperlos, comerlos, etc.) Un mensaje te informará del efecto de la acción sobre el objeto."; ], !!---------------------- Enciende1_explicado false, Enciende2_explicado false, Enciende_1 [; print_ret (stparser) "Intenta encender una cerilla para que la pequeña se caliente con ella."; ], Enciende_2 [; print_ret (stparser) "Para encender una cerilla, ABRE LA CAJA y teclea ENCIENDE CERILLA."; ], !!---------------------- MetaComandos_explicado false, MetaComandos [; print_ret (stparser) "Si quieres salir del cuento, teclea TERMINAR. Para guardar tu posición actual, teclea GUARDAR. CARGAR te permitirá retomar una partida que hayas guardado previamente, y REINICIAR comenzará el relato de nuevo desde el principio. Además, si en algún momento quieres volver ~un paso atrás~, teclea DESHACER."; ], !!---------------------- AyudaGeneral [; print_ret (stparser) "Hay muchas otras acciones que puedes intentar hacer para conocer más cosas de la protagonista y su entorno. No tengas miedo de experimentar con nuevas instrucciones."; ], !!---------------------- gestor_pistas [; !! Descripción de la localidad actual: comando MIRA if ( ~~self.DescripcionLocalidad_explicado ) { self.DescripcionLocalidad_ayuda = true; return self.DescripcionLocalidad_1(); } !! Descripción de los objetos: comando EXAMINA if ( ~~self.DescripcionObjetos_explicado ) { self.DescripcionObjetos_ayuda = true; return self.DescripcionObjetos_1(); } !! Objetos que lleva la protagonista: comando INVENTARIO if ( ~~self.Inventario_explicado ) { self.Inventario_ayuda = true; return self.Inventario_1(); } !! Abrir la caja de cerillas: comando ABRE if ( ~~self.Abre_explicado ) { self.Abre_ayuda = true; return self.Abre_1(); } !! Encender una cerilla: comando ENCIENDE if ( ~~self.Enciende1_explicado ) { self.Enciende1_explicado = true; return self.Enciende_1(); } if ( ~~self.Enciende2_explicado ) { return self.Enciende_2(); } !! Terminar, reiniciar, guardar, cargar partida...: metacomandos if ( ~~self.MetaComandos_explicado ) { self.MetaComandos_explicado = true; return self.MetaComandos(); } return self.AyudaGeneral(); ], react_before [; Burn: if ( noun == obj_cerilla && caja_cerillas has open && ~~self.Enciende1_explicado ) self.Enciende1_explicado = true; if ( noun == obj_cerilla && caja_cerillas has open && ~~self.Enciende2_explicado ) self.Enciende2_explicado = true; Inv: if ( ~~self.Inventario_explicado ) self.Inventario_explicado = true; if ( self.Inventario_ayuda ) { self.Inventario_ayuda = false; self.Inventario_2(); new_line; } Look: if ( self.DescripcionLocalidad_ayuda && ~~self.DescripcionLocalidad_explicado ) { self.DescripcionLocalidad_explicado = true; self.DescripcionLocalidad_ayuda = false; self.DescripcionLocalidad_2(); new_line; } Examine: if ( ~~self.DescripcionObjetos_explicado ) self.DescripcionObjetos_explicado = true; if ( self.DescripcionObjetos_ayuda ) { self.DescripcionObjetos_ayuda = false; self.DescripcionObjetos_2(); new_line; } Open: if ( noun == caja_cerillas && ~~self.Abre_explicado ) self.Abre_explicado = true; if ( self.Abre_ayuda ) { self.Abre_ayuda = false; self.Abre_2(); new_line; } Use: return self.ComandoUsa(); ], react_after [; if ( self hasnt general ) { give self general; new_line; print_ret (stparser)"Si es la primera vez que lees un relato interactivo teclea AYUDA."; }], has scenery; [ EncenderCerilla; if ( obj_cerilla in caja_cerillas && caja_cerillas hasnt open ) { if ( ESQUINA.contador_visiones == 0 ) "Todas las cerillas estaban dentro de la caja, y la caja estaba cerrada."; give caja_cerillas open; } switch ( ESQUINA.contador_visiones ) { 0: ESQUINA.contador_visiones++; print "Estaba completamente helada. ¡Si se atreviese a encender un fósforo para calentarse los dedos! Nadie notaría la falta de uno solo de ellos, pensó. De modo que agarró uno y: ~¡ritch!~.^"; new_line; print "¡Cómo chispeó y cómo quemaba! La llama de la cerilla era cálida y clara, una lucecita maravillosa que trataba resguardar del viento con sus manitas temblorosas. Parecióle a la pequeña que estaba sentada junto a una gran estufa de hierro, una con brillantes adornos y pies y campana de latón. El fuego ardía magníficamente en su interior, ¡y calentaba tan bien! La niña alargó los pies para calentárselos a su vez.^"; new_line; move cerillas_calcinadas to ESQUINA; move obj_cerilla to caja_cerillas; print "Pero en ese momento se extinguió la llama, la estufa se desvaneció, y ella se encontró allí sentada, en mitad del frío, con los restos de una cerilla consumida entre las manos. Arrojó el palillo calcinado al suelo.^"; new_line; <>; 1: ESQUINA.contador_visiones++; print "Cogió otra de las cerillas y la frotó contra el rascador del lateral de la caja.^"; new_line; print "El fósforo ardió y brilló, y un trozo de pared donde se reflejaba la amarillenta luz se volvió transparente, como si fuese un suave velo de gasa. La niña pudo ver el interior de una habitación donde estaba la mesa puesta, cubierta con un blanquísimo mantel y fina porcelana. En el centro, un pato asado humeaba deliciosamente, relleno de ciruelas y de pasas y de manzanas. Y entonces sucedió algo aún mejor: el pato se revolvió, saltó de la bandeja y empezó a arrastrarse graciosamente por el suelo en dirección a la muchachita, con el cuchillo y el tenedor aún a la espalda.^"; new_line; move obj_cerilla to caja_cerillas; print "Y la cerilla se apagó y el muro volvió a ser frío y sólido de nuevo.^"; new_line; <>; 2: ESQUINA.contador_visiones++; print "Encendió una tercera cerilla...^"; new_line; print "...y se encontró sentada debajo de un precioso árbol de Navidad, aún más alto y más bonito que el que viera la pasada Nochebuena, a través de la puerta de cristales, en casa del rico comerciante. Millares de velitas ardían en las verdes ramas, y de éstas colgaban estampas pintadas de vivos colores, semejantes a las que adornaban los escaparates de las tiendas. La pequeña levantó los dos bracitos hacia ellas...^"; new_line; move obj_cerilla to caja_cerillas; print "...y se apagó el fósforo. Todas las lucecitas se remontaron hacia arriba, como las chispas de una hoguera que vuelan a la noche, y entonces se dio cuenta de que todos aquellos puntitos de luz eran en realidad las rutilantes estrellas del cielo.^"; ESQUINA.estrella_fugaz = true; new_line; <>; 3: print "Frotó una nueva cerilla contra la caja.^"; new_line; print "Su alrededor se iluminó con la cálida llama, y apareció la anciana abuelita, radiante, dulce y cariñosa. ---¡Abuelita! ---exclamó la pequeña. ---¡Oh, abuelita, llévame contigo! Sé que te querrás ir cuando se apague la cerilla, igual que se fueron la estufa y el asado y el árbol de Navidad... ¡pero tú no me dejes sola! ¡no te vayas sin mí, abuelita! ^^ Apresuróse a encender tantos fósforos como pudo, afanosa de no perder a su abuela; y los fósforos brillaron con luz más clara que la del pleno día. Nunca la abuelita había sido tan alta y tan hermosa; tomó a la niña del brazo y, envueltas las dos en un gran resplandor, henchidas de gozo, emprendieron el vuelo hacia las alturas, sin que la pequeña sintiera ya frío, hambre ni miedo...^"; new_line; print "Pero en el ángulo de la casa, la fría madrugada descubrió a la chiquilla, rojas las mejillas y con una sonrisa en los labios... muerta, muerta de frío en la última noche del año. El sol de la mañana iluminó el pequeño cadáver hecho aún un ovillo, con un círculo de cerillas consumidas a su alrededor. ~Quiso calentarse~, dijo la gente. Pero nadie supo nunca de las maravillas que había visto, ni del esplendor con que había subido, en compañía de su anciana abuelita, a la gloria y la alegría del Año Nuevo.^"; KeyCharPrimitive(); new_line; print (stnegrita) "FIN"; new_line; KeyCharPrimitive(); new_line; new_line; print (stcursiva) "Si quieres volver a empezar el cuento pulsa ~", (stnegrita) "R", (stcursiva) "~^"; print (stcursiva) "Cualquier otra teclar para salir"; if (KeyCharPrimitive() == 'r' or 'R') { @restart; L__M(##Restart, 2); } else quit; } ]; !!============================================================================== !! ESQUINA: Acurrucada en una esquina !!------------------------------------------------------------------------------ Room ESQUINA "Acurrucada en una esquina" with name 'esquina', initial [; if ( self hasnt visited ) { box "" "-- ¿Tú crees que hay gente que sobra? " "-- Los mendigos. " "-- Los que se mean en el portal. " "-- Los que no me dan la razón. " "-- Los que no me dan. " "-- Definitivamente los mendigos sobran. " "-- Pero si quitamos a los mendigos... ¿quién" " va a protagonizar los cuentos y las " " películas y los documentales? " "-- Sobre todo en Navidad. " "" " CRISTINA PEREGRINA" " Concierto para la acumulación, 2010" ""; KeyCharPrimitive(); EraseWindow(); "¡Qué frío hacía!; la nieve y la noche comenzaban a caer lentamente sobre la ciudad aquel día de San Silvestre, el último del viejo año. En medio del frío y la oscuridad crecientes, una pobre niña vagaba sola por las calles, descalza y con la cabeza descubierta. Verdad es que al salir de su casa llevaba zapatillas, pero, ¡de qué sirvieron! Eran unas zapatillas que su madre había llevado últimamente, y a la pequeña le venían tan grandes, que las perdió al cruzar corriendo la calle para librarse de dos coches tirados por caballos que venían a toda velocidad. Una de las zapatillas no hubo medio de encontrarla, y la otra se la había puesto un mozalbete, que salió corriendo con ella mientras gritaba que la haría servir de cuna el día que tuviese hijos. ^^ Y así la pobrecilla andaba descalza con los desnudos piececitos completamente amoratados por el frío. En un viejo delantal guardaba, como si de un tesoro se tratase, un paquete lleno de fósforos. Había intentado venderlos para conseguir algo de dinero que llevar a casa, sin embargo, en todo el santo día nadie le había comprado nada, no le habían dado ni un mísero chelín; volvíase a casa hambrienta y medio helada, ¡y parecía tan abatida! Rendida, se sentó en el suelo, en un ángulo que formaban dos casas ---una más saliente que la otra---, y se acurrucó hecha un ovillo.^"; }], description [; if ( self.estrella_fugaz ) { self.estrella_fugaz = false; "En lo alto, una estrella se desprendió de su sitio y trazó en el firmamento una larga estela de fuego. ~Alguien se está muriendo~ pensó la pequeña, pues su abuela, la única persona que la había querido de verdad pero que había muerto ya, le había dicho una vez: ~Cuando una estrella cae, un alma se eleva al cielo~. ^^ Su pobre abuela... ¡cuánto la echaba de menos!"; } if ( self.contador_visiones == 0 ) "Desde su rincón, la pequeña veía cómo la nieve se posaba delicadamente sobre los tejados de los edificios y sobre los adoquines del suelo, donde había empezado a formarse ya un delgado manto blanco. Y lo hacían también sobre su delicado cuerpecito, que no podía dejar de temblar por culpa del frío."; if ( self.contador_visiones == 1 ) { print "La nieve continuaba cayendo sobre la calle, acumulándose en una capa cada vez más y más ancha. El aire era gélido y a la pequeña le dolía al respirar, pero traía consigo el agradable olor a leña quemada de las chimeneas, y el aún más agradable de la comida asada que se filtraba por las rendijas de las puertas cercanas"; if ( ~~self.estomago_chiquilla ) { self.estomago_chiquilla = true; ". Su estómago se encogió levemente por culpa del hambre."; } "."; } "Las gélidas sombras de la noche lo envolvían ya todo. Solo el apagado resplandor de los faroles, y el más vivo que salía de las ventanas de las casas, lograba alejar las tinieblas y arrojaba algo de luz sobre los grandes copos de nieve que caían pausadamente sobre los adoquines de la solitaria calle."; ], before [; Listen: if ( noun == 0 ) { "La nieve caía en el más completo silencio. Solo se oía, ahogado por los gruesos muros, el rumor de las risas y las conversaciones, y el tintinear de los cubiertos chocando entre si, que llegaban desde el interior de las casas."; } Sit: "Ya estaba sentada."; StandUp: "No tenía fuerzas suficientes para volver a levantarse en aquel momento."; Smell: if ( noun == 0 ) { print "El aire era gélido y a la pequeña le dolía al respirar, pero traía consigo el agradable olor a leña quemada de las chimeneas"; if ( self.contador_visiones == 1 ) ", y el aún más agradable de la comida asada que se filtraba por las rendijas de la puerta que tenía al lado."; "."; } ], contador_visiones 0, intento_marcharse false, estomago_chiquilla false, estrella_fugaz false, n_to [; <>; ], in_to [; return self.n_to(); ], out_to [; return self.cant_go(); ], cant_go [; print "Pensó en volver a su casa pero no se atrevía, pues no había vendido ni un solo fósforo, no tenía dinero ni comida que llevar de vuelta; si aparecía así, su padre sin duda le pegaría"; if ( ~~self.intento_marcharse ) { self.intento_marcharse = true; ". Además de que en casa hacía frío también. El tejado, lleno de goteras, apenas los cobijaba, y el viento entraba por todas partes, pese a la paja y los trapos con que habían procurado tapar las rendijas. No, no se atrevía a volver."; } "."; ]; Object Cerillera "cerillera" ESQUINA with name_m 'cabello' 'pelo' 'cuello', name_mp 'cabellos' 'rizos', name_f 'cerillera' 'nina' 'chiquilla' 'pequena' 'chica' 'muchacha' 'cria' 'chavala' 'chavalilla', adjectives 'pobre' 'asustada' 'helada' 'congelada' 'hambrienta' 'rubio' 'rubios' 'hermoso' 'hermosos', description "Los copos de nieve caían sobre su largo cabello rubio, cuyos hermosos rizos le cubrían el cuello; pero no estaba ella para presumir.", has female; Atrezzo "calle" ESQUINA with name_m 'paseo' 'frio', name_f 'calle' 'via' 'oscuridad', name_fp 'tinieblas', gender G_FEMENINO, adjectives 'adoquinado' 'adoquinada', description "La calle estaba completamente desierta. Solo la nieve, el frío y la oscuridad, y también la pequeña, seguían fuera de casa a aquellas horas.", before [; Listen: <>; Smell: <>; ], has female; Atrezzo "adoquines" ESQUINA with name_m 'adoquin' 'manto', name_mp 'adoquines', name_f 'capa', gender G_MASCULINO + G_PLURAL, adjectives 'nieve' 'blanca' 'blanco' 'helado' 'helada' 'gelido' 'gelida' 'frio' 'fria', description "Un manto helado y blanco cubre ya casi todos los adoquines del suelo.", has male pluralname; Atrezzo "cielo" ESQUINA with name_m 'firmamento', name_f 'estrella' 'nube', name_fp 'estrellas' 'nubes', gender G_MASCULINO, adjectives 'rutilante' 'rutilantes' 'lejana' 'lejanas' 'tililante' 'tililantes' 'tinta' 'jiron' 'jirones', description "Entre las nubes se distinguían jirones de un cielo de tinta, un cielo salpicado de diminutos puntitos de luz lejana y tililante.", react_before [; Examine: if ( noun == u_obj) <>; ], has male; Atrezzo "nieve" ESQUINA with name_m 'copo' 'nevazo', name_mp 'copos', name_f 'nieve' 'nevada' 'nevisca' 'cellisca', gender G_FEMENINO, adjectives 'blanco' 'blanca' 'frio' 'fria' 'helado' 'helada' 'gelido' 'gelida', description "Los copos de nieve continuaban cayendo, lenta y silenciosamente.", has female; Atrezzo "casas" ESQUINA with name_m 'edificio', name_mp 'edificios', name_f 'casa' 'ventana', name_fp 'casas' 'ventanas', gender G_FEMENINO + G_PLURAL, description "Desde las ventanas de las casas se esparcía sobre la calle un resplandor anaranjado.", has female pluralname; Atrezzo "pared" ESQUINA with name_m 'muro', muro_mp 'muros', name_f 'pared', name_fp 'paredes', gender G_FEMENINO, adjectives 'piedra' 'frio' 'frios' 'fria' 'frias' 'incomodo' 'incomodos' 'incomoda' 'incomodas', description "Notaba el tacto de la pared contra su espalda, fría, sólida, tremendamente incómoda.", before [; Touch: return self.description(); ], has female; Atrezzo "faroles" ESQUINA with name_m 'farol' 'luz', name_mp 'faroles' 'luces', name_f 'farola' 'lucecilla' 'lucecita', name_fp 'farolas' 'lucecillas' 'lucecitas', gender G_MASCULINO + G_PLURAL, adjectives 'debil' 'debiles' 'temblorosa' 'temblorosas', description "Los faroles emitían una débil lucecilla temblorosa, apenas suficiente para ahuyentar las tinieblas a su alrededor.", has male pluralname; Atrezzo puerta "puertas" ESQUINA with name_m 'porton', name_f 'puerta' 'cancela' 'entrada', name_mp 'portones', name_fp 'puertas' 'cancelas' 'entradas', gander G_FEMENINO + G_PLURAL, adjectives 'madera' 'tallada' 'talladas' 'oscura' 'oscuras' 'grande' 'grandes' 'bonita' 'bonitas', description "Las puertas de las casas cercanas eran grandes y bonitas, con finos adornos tallados en oscura madera y brillantes aldabas de metal con rostros de bestia.", before [; Pull, Push, PushDir, Turn: "No tenía fuerzas para molestarse en hacer algo así."; KnockOn, Open: print (string) self.description; " Seguramente se tratasen de las casas de familias ricas e importantes. No iba a llamar. Tenía miedo de molestar y de que la echasen de allí."; ], has female pluralname door transparent; Atrezzo "aldabas" puerta with name_m 'aldabon' 'llamador' 'picaporte', name_f 'aldaba', name_mp 'aldabones' 'llamadores' 'picaportes', name_fp 'aldabas', gender G_FEMENINO + G_PLURAL, adjectives 'metal' 'metalica' 'metalicas' 'metalico' 'metalicos' 'cara' 'caras' 'de' 'leon' 'leones' 'aguila' 'aguilas' 'oso' 'osos', description [; return puerta.description(); ], before [; Use: <>; ], has female pluralname; Atrezzo cerillas_calcinadas "restos calcinados" LIMBO with name_mp 'restos', ! name_m 'fosforo' 'palillo', ! name_f 'cerilla', ! name_mp 'fosforos' 'palillos' 'restos', ! name_fp 'cerillas', gender G_MASCULINO + G_PLURAL, adjectives 'consumido' 'calcinado' 'quemado' 'extinguido' 'ennegrecido' ! 'consumida' 'calcinada' 'quemada' 'extinguida' 'ennegrecida' 'consumidos' 'calcinados' 'quemados' 'extinguidos' 'ennegrecidos' ! 'consumidas' 'calcinadas' 'quemadas' 'extinguidas' 'ennegrecidas' 'inservible' 'inservibles', description [; if ( ESQUINA.contador_visiones == 1 ) "No son más que los restos ennegrecidos e inservibles de la cerilla que había usado para calentarse."; "No son más que los restos ennegrecidos e inservibles de las cerillas que había usado para calentarse."; ], has male pluralname; Class Cerilla class Item with short_name "cerilla", plural "cerillas", parse_name [ i j j2 j3 j4; j = NextWord(); if ( j == 'cerilla' or 'fosforo' ) i++; if ( j == 'cerillas' or 'fosforos' ) { i++; parser_action = ##PluralFound; } if ( i>0 && action_to_be ~= ##Take or ##Remove ) { j2 = NextWord(); j3 = NextWord(); j4 = NextWord(); if ( j2 == 'de' ) { if ( j3 == 'la' && j4 == 'caja' ) i = i+3; if ( j3 == 'caja' ) i = i+2; } } return i; ], description [; if ( self hasnt light ) "Un fino palillo de madera rematado con una bolita de fósforo."; print "La cerilla ardía con una amarillenta y agradable llama "; if ( self in player ) "en sus manos."; if ( self in location ) "en el suelo."; "."; ], before [; Burn: if ( ~~IndirectlyContains(Player,self) ) "Aquellas cerillas eran lo único que tenía, y ya había sacado una del estuche. No podía permitirse andar desperdiciándolas sin motivo. Si iba a usarlas, usaría la que había sacado antes."; if ( ~~IndirectlyContains(Player,caja_cerillas) ) "Necesitaba tener la caja para encender la cerilla con el rascador del lateral."; EncenderCerilla(); return true; Take: if ( self in caja_cerillas && caja_cerillas hasnt open ) { ; new_line; } if ( self in player ) "Aquellas cerillas eran lo único que tenía, y ya había sacado una del estuche. No podía permitirse andar desperdiciándolas sin motivo. Si iba a usarlas, usaría la que había sacado antes."; ], has female; Item caja_cerillas "caja de cerillas" Cerillera with invent [; if ( inventory_stage == 1 && self hasnt open ) print "una caja de cerillas cerrada"; if ( inventory_stage == 1 && self has open ) print "una caja de cerillas abierta"; return true; ], parse_name [ i j j2 j3 j4; j = NextWord(); if( j == 'cerillas' ) i++; if( j == 'caja' or 'cajita' ) { i++; j2 = NextWord(); j3 = NextWord(); j4 = NextWord(); if ( j2 == 'de') { if( j3 == 'las' or 'los' && j4 == 'cerillas' or 'fosforos' ) i = i+3; if( j3 == 'cerillas' or 'fosforos') i = i+2; } if ( j2 == 'cerillas' or 'fosforos' ) i++; } return i; ], description [; SetPronoun('-lo', self); print "Es todo cuanto tenía la pequeña; un pequeño estuche lleno de cerillas"; if ( self hasnt open ) ". Estaba cerrado."; "."; ], before [; Drop, Insert, PutOn, Transfer: "Aquella caja de cerillas era lo único que tenía. De ninguna forma iba a dejarla tirada por ahí."; LetGo: if ( noun == obj_cerilla ) { move obj_cerilla to player; "Cogió una cerilla de dentro de la caja."; } if ( ~~IndirectlyContains(self, obj_cerilla) ) "Aquellas cerillas eran lo único que tenía, y ya había sacado una del estuche. No podía permitirse andar desperdiciándolas sin motivo. Si iba a usarlas, usaría la que había sacado antes."; ], after [; Open: if ( ~~self.flag_open ) { SetPronoun('-lo', self); self.flag_open = true; "Sacó el estuche del bolsillo del delantal y lo abrió con muchísimo esfuerzo, ya que las manos no dejaban de temblarle y sus dedos se habían quedado completamente entumecidos por el frío. Dentro estaban todas aquellas cerillas que no había sido capaz de vender."; } ], flag_open false, has female transparent container openable ~open; Cerilla obj_cerilla caja_cerillas;